home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / PowerMacOberon 1.2 / Source / Configuration.Mod (.txt)
Oberon Text  |  1995-08-14  |  2KB  |  64 lines

  1. Syntax10.Scn.Fnt
  2. Syntax12.Scn.Fnt
  3. MODULE Configuration;    (* jt  22.10.93 / js  28.10.93 *)(*<<<< MAH 20.7.94 *)
  4.  *    Executing the body of this module sets up the startup viewer configuration.
  5.  *    In addition to the standard config, this configuration sets up an 'intelligent'
  6.  *    scrolling log viewer.
  7.  *    This module might be changed and recompiled to fit your personal needs.
  8.  *    If the Configuration.obj file does not exist, a default configuration will be used.
  9.     IMPORT
  10.         Viewers, Oberon, TextFrames, MenuViewers, Display, Texts, Fonts, Directories;
  11.     CONST
  12.         StandardMenu = "System.Close System.Copy System.Grow Edit.Search Edit.Store ";
  13.         LogMenu = "System.Close System.Grow Edit.Locate Edit.Store ";
  14.         pinPos: LONGINT;
  15.         res: INTEGER;
  16.     PROCEDURE HandleLog(F: Display.Frame; VAR M: Display.FrameMsg);
  17.         VAR p, org1, old: LONGINT; y: INTEGER; loc : TextFrames.Location;
  18.     BEGIN
  19.         TextFrames.Handle(F, M);
  20.         IF M IS TextFrames.UpdateMsg THEN
  21.             WITH M: TextFrames.UpdateMsg DO
  22.                 IF (M.text = Oberon.Log) & (M.id = TextFrames.insert) THEN
  23.                     WITH F: TextFrames.Frame DO
  24.                         p:=TextFrames.Pos (F, F.X+F.W, F.Y);
  25.                         old:=0;
  26.                         WHILE (p#old) & (p<M.text.len) DO
  27.                             y:=F.Y+F.H;
  28.                             TextFrames.LocateLine (F, y, loc);
  29.                             org1:=loc.org;
  30.                             REPEAT
  31.                                 DEC (y);
  32.                                 TextFrames.LocateLine (F, y, loc);
  33.                             UNTIL (loc.org#org1) OR (y=F.Y);
  34.                             IF y=F.Y THEN RETURN END;
  35.                             TextFrames.Show(F, loc.org);
  36.                             old:=p; p:=TextFrames.Pos (F, F.X+F.W, F.Y)
  37.                          END
  38.                     END
  39.                 END
  40.             END
  41.         END
  42.     END HandleLog; 
  43.     PROCEDURE OpenViewers;
  44.         VAR logV, toolV: Viewers.Viewer; X, Y: INTEGER; logger: Oberon.Task;
  45.     BEGIN
  46.         Oberon.AllocateSystemViewer(0, X, Y);
  47.         logV := MenuViewers.New(
  48.             TextFrames.NewMenu("System.Log", "^Log.Menu.Text"),
  49.             TextFrames.NewText(Oberon.Log, 0),
  50.             TextFrames.menuH,
  51.             X, Y);
  52.         logV.dsc.next.handle := HandleLog; 
  53.         Oberon.AllocateSystemViewer(0, X, Y);
  54.         toolV := MenuViewers.New(
  55.             TextFrames.NewMenu("System.Tool", "^System.Menu.Text"),
  56.             TextFrames.NewText(TextFrames.Text("System.Tool"), 0),
  57.             TextFrames.menuH,
  58.             X, Y + 50) ;
  59.     END OpenViewers;
  60. BEGIN
  61.     Directories.ChangeDir(":User", res);
  62.     OpenViewers
  63. END Configuration.
  64.